﻿using System.ServiceModel;
using System.ServiceModel.Web;
using Facebook.Core.Responses;

namespace Facebook.Core.ServiceContracts
{
    [ServiceContract]
    public interface IFacebookFQL
    {
        [OperationContract]
        [WebGet(
            UriTemplate = FacebookURITemplates.Fql.query,
            BodyStyle = WebMessageBodyStyle.Bare,
            RequestFormat = WebMessageFormat.Xml,
            ResponseFormat = WebMessageFormat.Xml)]
        fql_query_response<status> queryFromStatus(string apiKey, string signature, long callID, string sessionKey, string query);

        [OperationContract]
        [WebGet(
            UriTemplate = FacebookURITemplates.Fql.query,
            BodyStyle = WebMessageBodyStyle.Bare,
            RequestFormat = WebMessageFormat.Xml,
            ResponseFormat = WebMessageFormat.Xml)]
        fql_query_response<user> queryFromUser(string apiKey, string signature, long callID, string sessionKey, string query);

        [OperationContract]
        [WebGet(
            UriTemplate = FacebookURITemplates.Fql.query,
            BodyStyle = WebMessageBodyStyle.Bare,
            RequestFormat = WebMessageFormat.Xml,
            ResponseFormat = WebMessageFormat.Xml)]
        fql_query_response<friend> queryFromFriend(string apiKey, string signature, long callID, string sessionKey, string query);
    }

}